Communication networks are widely deployed to provide communication services, such as transmitting packet data, multimedia, voice, video, broadcast, and the like. Traditionally, networks such as the Internet are configured to provide communication services between different computing systems and/or computers, servers, hosts, portable devices, mobile phones, and other consumer electronic devices via wired and/or wireless networking technologies. Network communication may be facilitated by standard communication transport protocols such as the Transmission Control Protocol/Internet Protocol (TCP/IP), the User Datagram Protocol/Internet Protocol (UDP/IP), or similar transport protocols.
One issue experienced by computing devices and systems using these communication transport protocols relates to issues of malicious attacks, unauthorized accesses, and the like. To address this issue, computing systems typically utilize a firewall controlling the data flow and preventing access by unauthorized users.
A firewall is a software application, hardware, or a combination thereof that controls network traffic between networks or hosts and allows or blocks specific data packets based on a comparison of network traffic characteristics to the existing policies. Several types of firewall technologies are available. Typically, firewalls operate on one or more TCP/IP layers which include an application layer, a transport layer, a network layer (also known as an IP layer), and a physical layer (also known as a hardware layer or link layer).
Network-layer firewalls operate at a relatively low level of the TCP/IP protocol stack, not allowing packets to pass through the firewall unless the packets match the established rule set. However, network-layer firewalls cannot make more complex decisions based on which stage of communications has been reached between hosts.
Application-layer firewalls work on the application level of the TCP/IP stack, and may intercept packets traveling to or from an application. Generally, an application firewall can prevent unwanted outside traffic from reaching a protected device. However, one disadvantage of application-layer firewalls is their effect on performance of the devices protected. Examining the contents of packets requires time and thus slows down processing. Another disadvantage of application-layer firewalls is administrative overhead. Because application-layer firewalls add complexity, there is a potential for misconfiguration, which leads to access issues and could also lead to blocking communications that were never intended to be blocked.
Advanced firewalls that combine lower-layer access control with upper-layer functionality are also widely utilized. One example of such an advanced firewall includes application-proxy gateways. However, application-proxy gateways also experience the above-mentioned complexity problems, which cause a reduction in overall performance.
The causes of the performance problems relate to the antiquated design of conventional computing devices practicing firewall features. Typically, these devices and other conventional operating systems follow similar architectures, including a layered design, device drivers, and Application Programming Interfaces (APIs).
Moreover, conventional processor designs use a fixed-frequency, continuously running crystal as the timing mechanism for clocking through processor execution cycles. Thus, the crystal and the microprocessor continue running even if nothing is being accomplished in the system, uselessly cycling around and waiting for a process to actually perform an action (e.g., process an incoming TCP/IP packet at the Ethernet interface). The foregoing architecture is inefficient in two respects. First, the crystal and microprocessor transistors typically execute at their maximum speed at all times, thereby consuming excess power and generating excess heat. Secondly, it is inefficient to continue running clock cycles if no substantive process is actually running.
Furthermore, conventional operating systems require various modifications and enhancements each year, such as incorporation of new communications layers for Ethernet drivers, TCP/IP stacks, Web browsers, and the like. Generally, these new layers are added on top of the conventional operating system, thereby increasing complexity, decreasing performance, and leading to software crashes and security flaws.